Method for generating group key

ABSTRACT

A method is provided for generating a group key, including sharing a plurality of secrete keys with a plurality of nodes adjacent to a first node of the plurality of nodes, obtaining a plurality of function values using the plurality of secrete keys and a result value using the plurality of function values, broadcasting the result value, receiving a plurality of result values generated using a method by which the result value has been obtained, from nodes of the plurality of nodes except for a corresponding node, and obtaining a group key using a plurality of function values extracted from the plurality of function values and the plurality of result values.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119 (a) of Korean Patent Application No. 10-2005-0067063, filed in the Korean Intellectual Property Office on Jul. 23, 2005, the entire disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method for generating a group key between nodes. More particularly, the present invention relates to a method for efficiently generating a group key using a hash function.

2. Description of the Related Art

A plurality of multimedia devices in a home network often must share specific contents. In this case, the multimedia devices must first share a group key that is not exposed to the outside, to thereafter share the specific contents through the group key.

As essential technology of ubiquitous computing technology, a plurality of sensors are required to communicate and share information as to sensed external environments with one another to build a ubiquitous sensor network.

Even in this case, sensor nodes must share a group key to communicate and share sensed information with one another through the group key. Several methods for generating and sharing such a group key between nodes have been suggested.

However, in a ubiquitous computing environment in which nodes frequently enter and exit a sensor network, a method is required for efficiently generating a group key that can be shared by only sensor nodes existing at a time when sharing and communicating information and contents.

In a conventional method for generating a group key, a server is necessarily required for computing, storing, and transmitting a group key. However, although a method for generating a group key not using such a server can be used, an exponent is required to be sequentially computed in all of the sensor nodes in a sensor network.

Accordingly, in such conventional methods, time and cost efficiency cannot be provided whenever a group key is generated.

Accordingly, a need exists for a system and method for effectively and efficiently providing a group key.

SUMMARY OF THE INVENTION

Accordingly, embodiments of the present invention have been made to substantially solve the above-mentioned and other problems, and an aspect of embodiments of the present invention is to provide a method for efficiently generating a group key using a hash function.

According to an aspect of embodiments of the present invention, a method is provided for generating a group key applied to a plurality of nodes, comprising sharing a plurality of secrete keys with a plurality of nodes adjacent to a first node of the plurality of nodes, obtaining a plurality of function values using the plurality of secrete keys and a result value using the plurality of function values, broadcasting the result value, receiving a plurality of result values generated using a method by which the result value has been obtained, from nodes of the plurality of nodes except for a corresponding node, and obtaining a group key using a plurality of function values extracted from the plurality of function values and the plurality of result values.

The sharing of the plurality of secrete keys with the plurality of nodes adjacent to the first node of the plurality of nodes may comprise sharing a first secrete key with a first adjacent node of the plurality of adjacent nodes, and sharing a second secrete key with a second adjacent node of the plurality of adjacent nodes.

The obtaining of the result value may comprise substituting the plurality of secrete keys as values of a plurality of substitution values for a one-way function to obtain a plurality of function values, and performing an XOR operation on the plurality of function values to obtain the result value.

The plurality of substitution values may comprise a nonce value.

The nonce value may be generated by using time information.

The broadcasting of the result value may be performed through an authentication channel.

The sharing of secrete keys may be performed by using an out of band method.

A plurality of secrete keys of the first node can be pre-set and input.

According to another aspect of embodiments of the present invention, a method is provided for generating a group key applied to a plurality of nodes, comprising sharing a first secrete key with a first adjacent node of a plurality of nodes adjacent to a first node of the plurality of nodes and a second secrete key with a second adjacent node of the plurality of adjacent nodes, substituting the first and second secrete keys as values of a plurality of substitution values for a one-way function to obtain first and second function values and performing an operation on the first and second function values to obtain a result value, broadcasting the result value, receiving a plurality of result values from nodes of the plurality of nodes except for a corresponding node of the plurality of nodes, and performing an XOR operation on a plurality of function values extracted from the first function value and the plurality of result values to obtain a group key.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects and features of embodiments of the present invention will become more apparent by describing certain embodiments of the present invention with reference to the accompanying drawings, in which:

FIG. 1 is a view illustrating an exemplary group of nodes for adopting a method for generating a group key according to an embodiment of the present invention; and

FIG. 2 is a view illustrating an exemplary configuration of a home network for adopting a method for generating a group key according to an embodiment of the present invention.

Throughout the drawings, like reference numerals will be understood to refer to like parts, components and structures.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

Exemplary embodiments of the present invention will be described in detail with reference to the annexed drawings. In the drawings, the same elements are denoted by the same reference numerals throughout the drawings. In the following description, detailed descriptions of known functions and configurations incorporated herein have been omitted for conciseness and clarity.

FIG. 1 is a view illustrating an exemplary group of nodes for adopting a method for generating a group key according to an embodiment of the present invention. Referring to FIG. 1, a conceptual “circle” of nodes constituting a node group are determined. Here, if a number of nodes constituting the node group is “N”, all of the nodes share at least two secrete keys with adjacent nodes, but are not limited thereto. The nodes may share three or more secrete keys with adjacent nodes. However, for illustration purposes in embodiments of the present embodiment, the nodes share two secrete keys with adjacent nodes.

If the nodes share two secrete keys with adjacent nodes, an i^(-th) node “node_i” 100 shares a secrete key “R_i” with an i+1^(th) node “node_(—)1+1” 110 on the right side of FIG. 1 and a secrete key “L_i” on the left side of FIG. 1 with an i−1^(th) node “node_i−1” 120.

The i+1^(th) node “node_i+1” 110 shares a secrete key R_i+1 with an i+2^(th) node “node_i+2” (not shown) on the right side thereof and a secrete key “L_i+1” with the i^(th) node “node_i” 100 on the left side thereof. Thus, the secrete key R_i of two secrete keys stored in the i^(th) node “node_i” 100 is the same as the secrete key “L_i+1” of two secrete keys stored in the i+1^(th) node “node_i+1” 110. In the present embodiments, a method of sharing a secrete key may be comprised of an out of band method.

According to the above-described exemplary methods, the nodes in the node group share two secrete keys, i.e., first and second keys, with two adjacent nodes and store the two secrete keys.

In embodiments of the present invention, the first and second secrete keys may be generated in advance by a secrete manager and then input to the nodes. Alternatively, the first and second secrete keys may be generated by an arbitrary node and transmitted to an adjacent node to be shared with the adjacent node. The first and second secrete keys may also be generated through communications between adjacent nodes.

A principle of using the secrete key to generate a group key shared by the nodes of the node group will now be described through the following Equation (1) below, X _(—) i=H(L _(i), Session ID)⁻¹ ⊙H(R _(—i), Session ID)  (1) wherein X_i denotes a result of an operation performed on a result value obtained by substituting a first secrete key R_i and an arbitrary nonce session ID for a hash function, and an inverse of a result value obtained by substituting a second secrete key L_i and an arbitrary nonce session ID for the hash function.

Here, the hash function compresses an input value having an arbitrary length into an output value having a predetermined length and having the following properties. In the hash function, it is substantially impossible to calculate an input value with respect to an output value and to search for an output value or another input value with respect to an input value. Also, it is substantially impossible to search for two different input values for calculating an output value.

The hash function satisfying the above-described characteristics is an important function for integrity, authentication, and preventing denial of data. In embodiments of the present invention, nodes inside a node group may share such a hash function.

Also, the hash function is an example of a one-way function. Thus, any one-way function, as well as a hash function, may be applied to embodiments of the present invention.

An arbitrary nonce session ID is a value that all nodes can commonly obtain at a time for generating a group key and may comprise time information, a random figure, or the like. Preferably, the same value may not be repeated.

Here, an operation sign “⊙” denotes an arbitrary operation sign. If an operation is performed on an arbitrary value “A” and an inverse of the arbitrary value “A” using such an operation sign, a result value of the operation is an identity element of the corresponding operation sign.

In exemplary embodiments of the present invention, the above-mentioned operation may comprise an XOR operation, but is not limited thereto. In this case, an inverse of an arbitrary value of the corresponding operation may be the corresponding arbitrary.

That is, if the group node according to embodiments of the present invention comprises N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N, the N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N have a common hash function and calculate the result values “X_i” using their first and second secrete keys “R_i” and “L_(—)1” and a nonce value.

The N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N broadcast the result values X_i. Thus, the N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N receive result values X_i of the other nodes, excluding themselves. In embodiments of the present invention, broadcasting may be performed through an authentication channel, but is not limited thereto.

As a result, the N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N share a group key through an operation as shown in the following Equation (2) below. B_(—) i=H(R _(i), Session ID)  (2) As shown in Equation (2), the node node_i substitutes a first secrete key R_i thereof and a nonce session ID to calculate a function value B_i. B _(—) i+1=X _(—) i+1⊙B _(i)  (3)

The node node_i performs an operation on a function value B_i of a result value of Equation (1) and a result value X_i+1 received from the node node_i+1 to calculate a function value B_i+1. The resulting value X_i+1 of Equation (3) can be expressed as, X _(—) i+1=H(L _(—) i+1, Session Id)⁻¹ ⊙H(R_(—) i+1, Session ID) using Equation (1). This Equation is substituted for Equation (3) to express Equation (3) as shown below. B _(—) i+1=H(L _(—) i+1, Session ID)⁻¹ ⊙H(R _(i+)1, Session ID)⊙B _(—) i L _(—) i+1=R _(i) Thus, if the function value B_i of Equation (2) is substituted for Equation (2), the following Equation is established. B _(—) i+1=H(R _(—) i+1, Session ID) According to the above-described principle, an arbitrary node sequentially operates function values B_i+2, B_i+3, . . . , and B_i−1. That is, the above-described operation is expressed as shown in the following Equation (4) below. B _(—) i=H(R_i, Session ID) B _(—) i+1=X _(—) i+1⊙B _(—) i B _(—) i+2=X _(—) i+2⊙B _(—) i+1 . . . B _(—) i−1=X _(—) i−1⊙B _(—) i−2  (4) Final operation values obtained through Equation (4) due to the characteristic of an operation with an inverse can be expressed as shown in the following Equation (5) below. B _(—) i=H(R_i, Session ID) B _(—) i+1=H(R _(—) i+1, Session ID) B _(—) i+2=H(R _(—) i+2, Session ID) . . . B _(—) i−1=H(R_(—) i−1, Session ID) The N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N generate and store a group key used by the node group using the operation values expressed in Equation (5). K _(G) =H(B _(—)1∥B _(—)2∥. . . ∥B _(—) N−1∥B _(—) N)  (6)

Equation (6) above expresses the group key generated and stored by the N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N . That is, a group key K_(G) may be a value provided by connecting function values B_(—)1, B_(—)2, . . . , B_i, . . . , B_N, that are the operation values obtained through Equations (1) through (5) and substituting the function values B_(—)1, B_(—)2, . . . , B_i, . . . , B_N, for a hash function. Thereafter, the N nodes node_(—)1, node_(—)2, . . . , node_i . . . , and node_N share the group key generated through the above-described process.

In embodiments of the present invention, conceptual circles of nodes are substantially determined as described in the present specification. The group key K_(G) is generated depending on a direction along which the circles are increased. However, the group key K_(G) may be generated by those of ordinary skill in the art depending on a direction along which the circles are decreased. In this case, the “R” of variables of Equations (1) through (6) above indicating the right side may be changed into an “L” indicating the left side.

FIG. 2 is a view illustrating an exemplary configuration of a home network for adopting a method for generating a group key according to an embodiment of the present invention. Referring to FIG. 2, home devices comprising a node group are numbered to set a conceptual circle.

The home devices may comprise static and mobile devices, but are not limited thereto. In the case where a group key is generated through the above-described process, and then a device 2 is excluded from the home network in a state shown in FIG. 2, only devices 1 and 3 that are adjacent to the device 2 change and store secrete keys. Devices not adjacent to device 2 continuously store existing first and second secrete keys.

That is, in a case where device 2 is excluded from the home network, device 1 may store a new first secrete key shared with device 3 instead of a first secrete key R_(—)1 shared with device 2.

Also, device 3 may store a new second secrete key shared with device 1 instead of a second secrete key L_(—)3 shared with device 2.

Thus, the devices completely share first and second secrete keys in a new environment. Thereafter, the devices may generate a new group key K_(G) through the process described through Equations (1) through (6) above.

As described above, according to embodiments of the present invention, a group key can be efficiently generated in an environment in which nodes frequently enter and exit a node group. Also, an exponent operation is not used during the generation of the group key. Thus, computation of the nodes can be reduced, and a server and a public key are not required.

The foregoing embodiments and advantages are merely exemplary and are not to be construed as limiting the present invention. The present teachings can also be readily applied to other types of apparatuses. Also, the description of the exemplary embodiments of the present invention is intended to be illustrative, and not to limit the scope of the claims, and many alternatives, modifications, and variations will be apparent to those skilled in the art. 

1. A method for generating a group key applied to a plurality of nodes, comprising: sharing a first secrete key with a first adjacent node of a plurality of nodes adjacent to a first node of the plurality of nodes and a second secrete key with a second adjacent node of the plurality of adjacent nodes; obtaining first and second function values by using the first and second secrete keys and obtaining an inner result value by using the first and second function values; broadcasting the inner result value; receiving a plurality of inner result values from nodes of the plurality of nodes except for a corresponding node of the plurality of nodes; and performing an operation on a plurality of function values extracted from the first function value and the plurality of outer result values to obtain a group key.
 2. The method of claim 1, wherein the operation comprises an XOR operation.
 3. The method of claim 1, wherein the obtaining of the inner result value comprises: substituting the first and the second secrete keys as values of a plurality of substitution values for a one-way function to obtain the first and second function values; and performing an operation on the first and the second function values to obtain the inner result value.
 4. The method of claim 3, wherein the operation comprises an XOR operation.
 5. The method of claim 3, wherein the plurality of substitution values comprise a nonce value.
 6. The method of claim 5, further comprising generating the nonce value by using time information.
 7. The method of claim 1, further comprising broadcasting the result value through an authentication channel.
 8. The method of claim 1, further comprising sharing the first and second secrete keys by using an out of band method.
 9. The method of claim 1, further comprising pre-setting the first and second secrete keys.
 10. The method of claim 9, further comprising inputting the pre-set first and second secrete keys.
 11. A method for generating a group key applied to a plurality of nodes, comprising: sharing a plurality of secrete keys with a plurality of nodes adjacent to a first node of the plurality of nodes; obtaining a plurality of function values using the plurality of secrete keys and an inner result value using the plurality of function values; broadcasting the inner result value; receiving a plurality of outer result values generated using a method by which the inner result value has been obtained, from nodes of the plurality of nodes except for a corresponding node; and obtaining a group key using a plurality of function values extracted from the plurality of function values and the plurality of outer result values.
 12. A computer program embodied on a computer-readable medium for generating a group key applied to a plurality of nodes, comprising: a first set of instructions for sharing a plurality of secrete keys with a plurality of nodes adjacent to a first node of the plurality of nodes; a second set of instructions for obtaining a plurality of function values using the plurality of secrete keys and an inner result value using the plurality of function values; a third set of instructions for broadcasting the inner result value; a fourth set of instructions for receiving a plurality of outer result values generated using a method by which the inner result value has been obtained, from nodes of the plurality of nodes except for a corresponding node; and a fifth set of instructions for obtaining a group key using a plurality of function values extracted from the plurality of function values and the plurality of outer result values. 